package com.project.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.common.annotation.Excel;
import com.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 项目预算主表
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("项目立项--预算信息主表")
public class BizProjectBudgetBatch {

    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty("id")
//    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String ID;

    /** 项目id */
    @NotBlank
    @ApiModelProperty("项目id")
    @Excel(name = "项目id")
    private String projectId;

    /** 预算提交日期 */
    @ApiModelProperty("预算提交日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预算提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date budgetDate;

    /** 预算总金额 */
    @ApiModelProperty("预算总金额")
    @Excel(name = "预算总金额")
    private String budgetFee;

    /** 预算标准 */
    @ApiModelProperty("预算标准id")
    @Excel(name = "预算标准")
    private String budgetStandardId;

    /** 备注 */
    @ApiModelProperty("备注")
    @Excel(name = "备注")
    private String note;

    /** 备用字段1 */
    @ApiModelProperty("备用字段1")
    @Excel(name = "备用字段1")
    private String standby1;

    /** 备用字段2 */
    @ApiModelProperty("备用字段2")
    @Excel(name = "备用字段2")
    private String standby2;

    /** 备用字段3 */
    @ApiModelProperty("备用字段3")
    @Excel(name = "备用字段3")
    private String standby3;

    /** 备用字段4 */
    @ApiModelProperty("备用字段4")
    @Excel(name = "备用字段4")
    private String standby4;

    /** 备用字段5 */
    @ApiModelProperty("备用字段5")
    @Excel(name = "备用字段5")
    private String standby5;

    /** 审核状态 */
    @ApiModelProperty("审核状态")
    @Excel(name = "审核状态")
    private String checkstatus;

    /** 创建人id */
    @ApiModelProperty("创建人id")
    @Excel(name = "创建人id")
    private String createuserid;

    /** 创建人姓名 */
    @ApiModelProperty("创建人姓名")
    @Excel(name = "创建人姓名")
    private String createusername;

    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdate;

    /** 最后编辑人id */
    @ApiModelProperty("最后编辑人id")
    @Excel(name = "最后编辑人id")
    private String lastedituserid;

    /** 最后编辑人姓名 */
    @ApiModelProperty("最后编辑人姓名")
    @Excel(name = "最后编辑人姓名")
    private String lasteditusername;

    /** 最后编辑时间 */
    @ApiModelProperty("最后编辑时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后编辑时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lasteditdate;

    /** 项目性质 */
    @ApiModelProperty("项目性质")
    @Excel(name = "项目性质")
    private String projectClass;

    /** 审核时间 */
    @ApiModelProperty("审核时间")
    @Excel(name = "审核时间")
    private String checkdate;

    /** 审核人 */
    @ApiModelProperty("审核人")
    @Excel(name = "审核人")
    private String checker;

    /** 预算页扫描件 */
    @ApiModelProperty("预算页扫描件")
    @Excel(name = "预算页扫描件")
    private String budgetFileId;

    /** 类型（add、edit） */
    @ApiModelProperty("类型")
    @Excel(name = "类型", readConverterExp = "add、edit")
    private String budgetAddMode;

    /** 流程id */
    @ApiModelProperty("流程id")
    @TableField(exist = false)
    private String processInstanceId;

    /** 提交类型 */
    @ApiModelProperty("提交类型 -> -1:暂存,1:提交,2:保存并通过")
    @TableField(exist = false)
    private Integer submitType;

    /** 流程节点id */
    @ApiModelProperty("流程节点id")
    @TableField(exist = false)
    private String taskId;

    /** 是否当前审批人 */
    @TableField(exist = false)
    private Boolean isAuditor;
}
